package com.hl.toolkit.server.util;

import java.math.BigDecimal;
import java.text.DecimalFormat;

public class AmountUtil {

	
	/**
	 * 保留两位
	 * @param args
	 */
	public static BigDecimal d2D(String doub) {
		BigDecimal bd = new BigDecimal(doub);
		return bd.setScale(2, BigDecimal.ROUND_HALF_UP);
	}
	
	
	
	
	/**
	 * 取整
	 * @param doub
	 * @return
	 */
	public static BigDecimal quzheng(String doub) {
		BigDecimal bd = new BigDecimal(doub);
		return bd.setScale(0, BigDecimal.ROUND_HALF_UP);
	}
	
	/**
     * 取百分比
     * @param a
     * @param b
     * @return
     */
    public static String getPercentage(String a ,String b){
    	Double a1=Double.parseDouble(a);
		Double b2=Double.parseDouble(b);
		System.out.println(a1);
		System.out.println(b2);
		System.out.println(a1/b2);
    	double p = 100*(a1/b2);
    	System.out.println("待格式化："+p);
    	BigDecimal bigDecimal=AmountUtil.quzheng(p+"");
    	System.out.println("格式化后："+bigDecimal);
    	//String result=""+(bigDecimal*100);
    	return bigDecimal+"%";
    }
    
    public static void main(String[] args) {
    	System.out.println(Float.parseFloat((AmountUtil.add("600.1", "0.01")+"")));
    	System.out.println((AmountUtil.add("1004500.1", "0.01"))+"");
    	System.out.println(Float.parseFloat(AmountUtil.add("1004500.10", "0.01")+""));
    	String a="1004500.11";    	
    	float b=Float.parseFloat(a);
    	System.out.println(b);
    	double c=1004500.11;
    	DecimalFormat d=new DecimalFormat(".00");
    	String format = d.format(c);
    	System.out.println(format);
	}
    
	/**
	  * 两数相减
	  * @param value1
	  * @param value2
	  * @return
	  */
	 public static BigDecimal sub(String value1,String value2){
      BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
      BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
      BigDecimal b3=AmountUtil.d2D((b1.subtract(b2).doubleValue())+"");         
      return b3;
	 }
	 /**
	  * 两数相加
	  * @param value1
	  * @param value2
	  * @return
	  */
	 public static BigDecimal add(String value1,String value2){
      BigDecimal b1 = new BigDecimal(Double.valueOf(value1));
      BigDecimal b2 = new BigDecimal(Double.valueOf(value2));
      BigDecimal b3=AmountUtil.d2D((b1.add(b2).doubleValue())+"");         
      return b3;
	 }
	
	/**
	 * 格式化小数
	 * @param d 
	 * @param digint 位数
	 * @return
	 */
	public static double convert (double d,int digint ){
		double divisor = Math.pow(10, digint);
		long value = Math.round(d*divisor);
		return value/divisor;
	}
}
